[% setvar title The Perl 6 Summary for the week ending 20030309 %]
<div id="archive-notice">
    <h3>This file is part of the Perl 6 Archive</h3>
    <p>To see what is currently happening visit <a href="http://www.perl6.org/">http://www.perl6.org/</a></p>
</div>
<div class='pod'>
<a name='The Perl 6 Summary for the week ending 20030309'></a><h1>The Perl 6 Summary for the week ending 20030309</h1>
<p>Ooh look, it's another of those Perl 6 Summaries where Piers tries to
work a gratuitous reference to Leon Brocard into a summary of what's
been happening to the Perl 6 development process this week.</p>
<p>As tradition dictates, we'll start with all the action from
perl6-internals.</p>
<a name='Object Specs'></a><h2>Object Specs</h2>
<p>With his great good taste and impeccable timing, Dan Sugalski managed
to release his second draft of an Object spec at 22.27 GMT on Sunday
March the second. Which meant that, strictly, the root message of this
thread doesn't belong in this summary. To which I say 'Tosh!'</p>
<p>Brent Dax wondered how this spec coped with classless OO languages
like JavaScript and whether such languages would have to fake
things with anonymous classes. It seems that faking it is going to the
'right' way.</p>
<p>Erik Bagfors asked for a clear example of the difference between
attributes and properties, and between class and object variables. Dan
didn't actually offer an example, but explained that properties are
'runtime assigned name values pairs that are stuck on a variable',
while attributes 'correspond to instance variables or slots in other
object systems'.</p>
<p>Dave Whipp wondered about the semantics of creation and destruction of
objects with a long list of questions. Dan replied that there was a
'Class Spec' forthcoming at some point too. The Object spec concerns
itself with 'just the behaviour of objects that already exist'.</p>
<p>Some further discussion of this happened in perl6-language, but Dan
dragged it back into perl6-internals. I shall follow his example by
summarizing those subthreads here, whilst muttering rude words under
my breath about people make a poor summarizer's life so hard.</p>
<p>Garrett Goebel (not G&ouml;bel, as I mistakenly spelt it last
week) wondered about serialization and persistence and wondered
whether a 'pure Parrot' serialization scheme would be possible,
allowing one to serialize Perl, Python, Ruby etc objects at the Parrot
level. Dan pointed out that there were <code>freeze</code> and <code>thaw</code> vtable
entries for PMCs, and said that he had some 'sketches of necessary
core functionality to make it feasible'. It looks like simple 'data
objects' will be simple to serialize at the parrot level.</p>
<p>Sam Vilain suggested a whole bunch of extra things to be associated
with Objects. Dan noted that all of Sam's suggestions were actually
things that belonged with Classes rather than objects, with the
exception of what Sam referred to as 'associations'. Garret asked for
some clarification of what Sam was talking about, tying it to
something Sam had said in perl6-language about 'exporting object
relationships in a sensible and consistent manner', so Sam did a brain
dump which outlined a scheme for persisting almost anything in a
language neutral manner (requiring more or less complicity on the part
of some languages) with loads of neat ideas in it. Dan liked the
ideas, but isn't going to go the whole way (probably). Dan also
implied that Parrot's serialize/deserialize methods would make use of
the GC system to make sure that everything gets dumped properly, once
and only once, solving the problem of cyclic references (YAY! An OO
Persistence tool writer writes).</p>
<p>Dan released the next iteration of his tentative object spec on Sunday
(but a little earlier this time). He and Uri Guttman spent the rest of
the day thrashing out some issues and clarifying some terminology. Dan
is threatening a glossary with the next try at an object spec.</p>
<p>(Dan just suggested on IRC that I summarize these threads as 'Dan
muttered incoherently about objects again. Folks generally humored
him.' Which I would never do of course; I'm English and I know how to
spell 'humour'.)</p>
<p><a href='http://groups.google.com/groups?threadm=a05200f03ba882e2a2fcb@' target='_blank'>groups.google.com</a>[63.120.19.221] -- Object spec (try 2)</p>
<p><a href='http://groups.google.com/groups?threadm=71BEC0D4E1DED3118F7A009027B12028034C8C34@EXCH_MISSION' target='_blank'>groups.google.com</a>
-- Garrett's first question</p>
<p><a href='http://groups.google.com/groups?threadm=200303042358.56560.sam@vilain.net' target='_blank'>groups.google.com</a> -- Sam Vilain's suggestions</p>
<p><a href='http://groups.google.com/groups?threadm=71BEC0D4E1DED3118F7A009027B12028034C8C3D@EXCH_MISSION' target='_blank'>groups.google.com</a> -- Garrett
asks for clarity</p>
<p><a href='http://groups.google.com/groups?threadm=200303071408.38029.sam@vilain.net' target='_blank'>groups.google.com</a> -- Sam's brain dump.</p>
<p><a href='http://groups.google.com/groups?threadm=a05200f00ba8d18fbf624@' target='_blank'>groups.google.com</a>[63.120.19.221] -- Object Spec (try 3)</p>
<a name='IMCC and multiple source files'></a><h2>IMCC and multiple source files</h2>
<p>K Stol wondered whether it was possible to write multi-file IMCC
programs. Leopold T&ouml;tsch answered that, whilst there's no Parrot
linker as yet, but by the time we read his post we could use the
<code>.include</code> macro to glue source files together.</p>
<p><a href='http://groups.google.com/groups?threadm=BAY1-DAV70xZpvXB2PO0000d563@hotmail.com' target='_blank'>groups.google.com</a></p>
<a name='Patch Roundup'></a><h2>Patch Roundup</h2>
<p>Jason Gloudon added some more ops to the sun4 JIT core. His patch was
applied, along with most of Steve Peters' patches from last
week. J&uuml;rgen B&ouml;mmels patched the print ops to use pure PIO
(Parrot IO) rather than a scary stdio/PIO hybrid. Dan applied this one
with alacrity (I don't think he likes stdio).</p>
<a name='Coroutines end and DFG'></a><h2>Coroutines end and DFG</h2>
<p>Leo T&ouml;tsch wondered if coroutines ended and if they did, how?
Leo noted that coroutines caused IMCC some big headaches with register
allocation. Jonathan Sillito replied saying that coroutines were never
ending and pointed out that each coroutine has its own user stack
which means that <code>saveall</code> and <code>restoreall</code> do the right thing,
which wasn't quite what gives IMCC headaches because you can't pass
arguments in the stack and have to rely on lexicals or globals, which
apparently means that IMCC will need some new hints to work out what's
happening.</p>
<p>Nobody explained what DFG stands for.</p>
<p><a href='http://groups.google.com/groups?threadm=3E650FCD.7010906@toetsch.at' target='_blank'>groups.google.com</a></p>
<a name='SableVM'></a><h2>SableVM</h2>
<p>Tupshin pointed everyone at SableVM 'an interesting Java VM done as a
doctoral thesis'. Leo found some of the optimization techniques in the
thesis interesting. Which scares me.</p>
<p><a href='http://groups.google.com/groups?threadm=3E6B09CB.7020007@tupshin.com' target='_blank'>groups.google.com</a></p>
<p><a href='http://www.sablevm.org/' target='_blank'>www.sablevm.org</a> -- SableVM</p>
<p><a href='http://www.info.uqam.ca/~egagnon/gagnon-phd.pdf' target='_blank'>www.info.uqam.ca</a> -- SableVM Thesis</p>
<a name='Parrot 0.0.10 freeze'></a><h2>Parrot 0.0.10 freeze</h2>
<p>Steve Fink announced the feature freeze before release 0.0.10. Parrot
is now frozen prior to the 0.0.10 release on March 15th.</p>
<p><a href='http://groups.google.com/groups?threadm=20030309225740.GA662@foxglove' target='_blank'>groups.google.com</a></p>
<a name='Meanwhile, over in perl6-language'></a><h1>Meanwhile, over in perl6-language</h1>
<p>The object discussion leaked over from perl6-internals, I'll cover the
language relevant parts here. Dave Whipp had some interesting things
to say about Associations in response to one of Sam Vilain's posts
that I covered in perl6-internals and Andy Wardley offered a counter
argument. There was a fair amount of discussion about the advisability
of Multiple Inheritance (which can be summed up as &quot;we don't have to
like it but we probably have to do it&quot;.) Andy Wardley proposed
stealing Ruby's Mixins and Simon Cozens came up with a nifty
Perl6-o-meter which Larry pointed out was rather more general than
Simon intended.</p>
<p><a href='http://groups.google.com/groups?threadm=20030306231736.3750.qmail@onion.perl.org' target='_blank'>groups.google.com</a></p>
<p><a href='http://groups.google.com/groups?threadm=20030306174032.GA14420@wall.org' target='_blank'>groups.google.com</a></p>
<a name='Signal/slot like mechanism'></a><h2>Signal/slot like mechanism</h2>
<p>Yannick Le Saint wondered if there was a notification mechanism
planned for Perl 6. Luke Palmer offered a simple implementation which
wasn't quite what Yannick was after which looks like it might possibly
need modifications to the 'Class' Class. Dan pointed noted that there
would almost certainly be a mechanism for registering watcher subs
with the internals (&quot;Yay!&quot; writes an insane summarizer with a penchant
for digging around in Perl's runtime internals...).</p>
<p><a href='http://groups.google.com/groups?threadm=200303061827.15964.y.lesaint@free.fr' target='_blank'>groups.google.com</a></p>
<a name='Acknowledgements, Announcements and Apologies'></a><h1>Acknowledgements, Announcements and Apologies</h1>
<p>Another quiet week. However, as I write this Apocalypse 6 is available
to read on perl.com and Dan is making noises on IRC about the next
draft of the object spec being released some time before
Sunday. I have the feeling that next week's summary will be covering a
lot more traffic.</p>
<p>Still haven't produced an American Odyssey web page. I've been too
busy taking photographs and relearning how to use my large format
camera.</p>
<p>If you appreciated this summary, please consider one or more of the
following options:</p>
<ul>
<li><a name='Send money to the Perl Foundation at donate.perl-foundation.org/ and help support the ongoing development of Perl.'></a>Send money to the Perl Foundation at
<a href='http://donate.perl-foundation.org/' target='_blank'>donate.perl-foundation.org</a> and help support the ongoing
development of Perl.</li>
<li><a name='Get involved in the Perl 6 process. The mailing lists are open to all. dev.perl.org/perl6/ and www.parrotcode.org/ are good starting points with links to the appropriate mailing lists.'></a>Get involved in the Perl 6 process. The mailing lists are open  to
all. <a href='http://dev.perl.org/perl6/' target='_blank'>dev.perl.org</a> and <a href='http://www.parrotcode.org/' target='_blank'>www.parrotcode.org</a>
are good starting points with links to the appropriate mailing lists.</li>
<li><a name='Send feedback, flames, money, job offers or an extension back for an Ebony 45S to p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a>'></a>Send feedback, flames, money, job offers or an extension back for an
Ebony 45S to <i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i></li>
</ul>
<p>This week's summary was again sponsored by Darren Duncan. Thanks
Darren. If you'd like to become a summary sponsor, drop me a line at
<i><a href='http://search.cpan.org/perldoc?<a href='mailto:p6summarizer@bofh.org.uk'>p6summarizer@bofh.org.uk</a>'>p<a href='mailto:6summarizer@bofh.org.uk'>6summarizer@bofh.org.uk</a></a></i>.</p>
</div>
